package com.xian.im.modules.im.core;

import com.xian.im.common.model.dto.GroupUserDto;
import com.xian.im.common.model.vo.UserVo;

import java.util.Set;

/**
 * @program: xian-code
 * @description:
 * @author: liru.xian
 * @create: 2021-01-19 10:37
 **/
public interface IGroupUserCoreService {

    String CACHE_KEY = "group:user:core:";

    /**
     *  添加群组管理员
     * @param userId
     * @param groupId
     * @return
     */
    Boolean  addManager(String userId, String groupId);
    /**
     *  删除群组管理员
     * @param userId
     * @param groupId
     * @return
     */
    Boolean  removeManager(String userId, String groupId);

    /**
     *  管理员是否存在
     * @param userId
     * @param groupId
     * @return
     */
    Boolean  exist(String userId, String groupId);

    /**
     * 获取群组所有的管理员
     * @param groupId
     * @return
     */
    Set<String> getUserAccountByGroupId(String groupId);

    /**
     * 获取群组所有的管理员
     * @param groupId
     * @return
     */
    Set<String> getUserAccountByGroupId(String groupId, Long orgId);

    /**
     * 获取群组所有的管理员
     * @param groupId
     * @return
     */
    Set<UserVo> getUserInfoByGroupId(String groupId);

    /**
     *  禁言用户
     * @param shutUpTime 禁言时间 秒
     * @param groupUserDto 用户ID
     * @return
     */
    Boolean shutUpUser(Long shutUpTime, GroupUserDto groupUserDto);

    /**
     *  解除禁言
     * @param groupUserDto
     * @return
     */
    Boolean unmute(GroupUserDto groupUserDto);    /**
     * 是否是禁言用户
     *
     * @param groupUserDto
     * @return
     */
    Boolean existMute(GroupUserDto groupUserDto);
}
